1: Technical Field
The invention is related to embedded real-time computing systems, and in particular, to automatic setup of device associations and trust among a plurality of distributed real-time components as a function of observed context histories and other available context information.
2: Related Art
As semiconductor technology becomes more mature and inexpensive, it becomes feasible to add computing and/or communication capabilities to many devices that used to be mechanical or analog, and to come up with new devices entirely. In fact, typical homes, offices, business, etc., are filled with electronic devices, such as personal computers, music systems, appliances, light switches, dimmers, and security systems, to name only a few. If all these systems could work together the utility of all the devices would improve.
Conventional schemes that attempt to integrate and coordinate the interoperability of such devices are often referred to under the heading of “invisible computing,” sometimes also referred to as ubiquitous, pervasive, disappearing, or embedded computing. Devices used in invisible computing environments include embedded control systems, including consumer devices, intelligent sensors and smart home controls; communication-oriented devices such as digital cell phones and networking infrastructure; programmable peripherals and microcontrollers, home appliances, toys, games, etc. In all these cases, the devices typically include inexpensive microprocessors, such as a DSP, a VLIW, or a micro-controller rather than a general-purpose computing capability or platform (such as a PC-type computer).
In general, invisible computing operates to combine everyday electronic devices, such as those mentioned above, with computation and communication capabilities, thereby enabling new functions and aggregation. It does this without forcing users to learn new or archaic computer interfaces. Further, invisible computing makes it easy to adopt integrated systems by keeping costs down without requiring a pre-existing infrastructure.
For example, in an invisible computing environment, a communications enabled wrist watch could be used to control the volume on a radio. A refrigerator could automatically order more beer or send a notification to a TV screen to inform the user that its door is ajar. Energy could be saved by integrating sensors with a central heating system. Wearable medical devices could improve user's well-being. More natural user interfaces and ubiquitous communication can enable better social interaction regardless of the user's physical location. Smart toys in such an environment can not only entertain, but also educate children. These are just of few of many ideas that are enabled by invisible computing environments.
Invisible computing differs from personal computing mainly because the user interface is not screen and keyboard based, and resources (such as energy, memory, bandwidth, etc.) are often severely restricted. While a PC or workstation can use a general-purpose operating system (a collection of commonly needed features) an invisible computer can seldom afford such luxury because of its severely constrained resources. Consequently, software controlling such devices is generally specifically tailored to the specific applications that are to be performed by such devices.
Invisible computing is also slightly different from traditional embedded computing in that the devices are most often communicating with each other and/or with general-purpose computers (via either wired or wireless connections) acting as a central controller/scheduler, and have a limited power supply.
Limited resource, semi-intelligent devices found in invisible computing environments can perform rudimentary tasks autonomously. It is the ability to communicate with other “invisible” devices that gives them added capabilities, such that the value of the whole system is greater than the sum of its parts.
When the small devices have the ability to communicate with PCs or other “big machines” in addition to other peers, it is possible to leverage the advantages of invisible computing in desktop computing and vice versa. PCs can provide backend processing for small devices, and small devices can extend the reach of a traditional PC further into user's everyday lives. For example, a small device can access a database on a web server; a PC can provide a user interface for examining and analyzing sensor data in a home; etc.
Unfortunately, while there are many advantages to the use of invisible computing environments, such systems are difficult to set up, and it is often virtually impossible to make many of the electronic devices work together. For example, besides the inter-device connections—either wired or wireless, the protocols spoken by such devices tend to be proprietary and application dependent. As a result, the user is relegated to archaic switches and menus to tell the various components of the overall system what to do. As a result, seamlessly integrated homes or offices are typically only achieved by using carefully planned systems that are installed by professional installation crews. Another problem with such systems, even when professionally installed, is that they tend to be insecure, thereby compromising the privacy of the users.